This application is related to copending U.S. applications filed on the same day of the present application and entitled xe2x80x9cReal-time video editing architecturexe2x80x9d and xe2x80x9cFlexible video architecture with software video effect filter componentsxe2x80x9d.
This invention relates to video editing. More precisely, this invention describes an architecture that allows real-time video editing.
Video editing has always been an important issue in video production. Film editing was initially done using splicing tools and title blending equipment. However, in recent few decades, new techniques appeared. One cornerstone in the evolution of these techniques was the beginning of the digital era. This new era opened new horizons and expanded dramatically the type of editing operations that could be performed on video streams. For instance, with this new era, it became possible to use the processing power of the computer.
Today video editing can be performed in a computer using two types of architecture.
The first type of architecture involves a dedicated 3D video special effects chip or chip set whose task is to perform only video editing operations and hardware implemented video effects. While this architecture allows real-time processing, which is a need for live broadcasting, this architecture suffers from a lack of upgradebility. Furthermore, this architecture is usually very expensive and thus not affordable for low end users.
This second type of architecture involves the common graphics chip used in computer graphics cards. This architecture allows video editing operations and video effects. Furthermore, this architecture allows a software upgrade of the video effects. However, this architecture cannot handle, in its present configuration, real-time operations. This is a major drawback that is not acceptable for a professional user and is also a great inconvenience for personal users.
There is thus a need for an architecture that would allow real-time video editing without using expensive dedicated hardware. There is also a need for an architecture that would allow a software upgrade of the video effects that can be performed in real time.
It is an object of the invention to provide a video editing architecture allowing real-time video editing using various sources of video streams,
It is another object of the invention to provide a video editing architecture that would make use of the graphic processor in a computer,
According to one broad aspect of the present invention, there is provided a video editing apparatus for performing video editing in real-time with at least one 3D rendering video effect on at least two video streams. The apparatus comprises,
a graphics processor which in turn comprises:
at least two video inputs;
an input buffer for storing at least two sequences of fields of the at least two video inputs;
a graphics image input;
a video output;
an output buffer for storing a sequence of fields of the graphics processor video output;
a 3D rendering engine;
a 2D graphics engine; and
a command interface comprising a command stack and providing a feedback signal in response to a feedback signal command;
a video effects controller connected lo the command interface providing a series of video processing commands to the command interface, each one of the video processing commands defining one graphics processing step part of a whole video processing effect of a selected one of the fields of the at least two video inputs to generate a processed field image stored as a selected one of the fields of the output buffer, the video effects controller suspending providing the series of commands when no one of the fields of the output buffer is free, the video processing commands including object specification definition data for 3D rendering, the series of video processing commands including the feedback signal command;
an input buffer controller responding to the feedback signal to control loading of new field data into the video input buffer for each of the at least two input video inputs at current field load addresses, and to keep a count of free fields in the sequence of fields in the output buffer, wherein the video effects controller suspends the providing of the video processing commands when the count is zero; and
an output buffer controller generating an address signal specifying a current output field address in the output buffer for the video output for each field to be output in real-time.
Preferably, more than one whole video processing effect is carried out to generate the selected one of the fields of the output buffer, the feedback signal command being provided only when the video processing commands for all video effect processing of the selected one of the fields of the output buffer have been provided.
Preferably, the whole video processing effect includes a combination of a video processing using the 2D graphics engine and a video processing using the 3D rendering engine.
Preferably, the desired video effect is selected from the group consisting of: wipes, dissolves, keys, borders, drop shadows, trails, sparkles, 2D and 3D DVE""s, surface and object morphing, explosions, multilayer compositing, anti-aliasing, spotlights and high lights, page curl, fade effect, 3D perspective effect, organic wipe effect.
Preferably, the video effects controller is responsive to the count by one of skipping frames and reducing an amount of video effect processing, so as to maintain realtime output from the output buffer.
Preferably, the graphics processor further comprises an input graphics buffer, the apparatus further comprising an input graphics buffer controller storing input graphic image fields in the input graphics buffer.
Preferably, the graphics processor is a graphics chip, and the video effects controller, the input buffer controller and the output buffer controller are provided in software.
Preferably, the feedback signal is an interrupt generated by the graphics processor.
Preferably the output buffer holds more than 6 fields.
According to another broad aspect of the present invention, there is provided a method of performing video editing in real-time using a computer workstation. The method comprises:
providing a graphics processor in the workstation, the graphics processor having a graphic processing command stack, an input buffer and an output buffer for a number of frames, and generating a feedback signal in response to a feedback command; providing a series of video processing commands to the graphics processor, each one of the video processing commands defining one graphics processing step part of a whole video processing effect, the series of video processing commands including the feedback signal command;
specifying a current output field address in the output buffer for video output for each field to be output in real-time;
detecting the feedback signal and determining when the output buffer is full; suspending the providing the series of commands when the output buffer is full; and
controlling loading of new frame data into the input buffer in response to the feedback signal.
Preferably, when more than one whole video processing effect is carried out for a same field, the feedback signal command is provided only when the video processing commands for all video effect processing have been provided.